package cm.service;

import cm.dto.XxlJobInfoEntity;
import cm.dto.XxlJobInfoQueryDTO;
import cm.vo.XxlJobInfoPlusVO;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 业务类接口
 * @since 2025-09-03 11:49:34
 */
public interface XxlJobInfoService extends IService<XxlJobInfoEntity> {
    /**
     * 按服务对Job分组并导出信息
     * @param response 响应对象
     */
    void exportAllJobsWithServiceName(HttpServletResponse response, XxlJobInfoQueryDTO xxlJobInfoQueryDTO);
    /**
     * 根据当前时间和服务查找前后近一个小时的Job列表并导出
     * @param response 响应对象
     */
    void exportJobsByServiceName(HttpServletResponse response, XxlJobInfoQueryDTO xxlJobInfoQueryDTO);
    /**
     * 通过主键查询单条数据
     * @param id 主键
     * @return 单条数据
     */
    XxlJobInfoPlusVO detail(Long id);
    
    /**
     * 通过主键查询列表数据
     * @param ids 主键
     * @return 单条数据
     */
    List<XxlJobInfoEntity> listByIds(List<Long> ids);
    
    /**
     * 通过id列表构建Map数据
     * @param ids 主键
     * @return 单条数据
     */
    Map<Long, XxlJobInfoEntity> mapByIds(List<Long> ids);

}

